javascript - 单元测试 AngularJS 模块 Controller
全部标签 我有一个函数,它接受一个block,打开一个文件,产生并返回:defstart&block.....dosomestuffFile.open("filename","w")do|f|f.write("something")....dosomemorestuffyieldendend我正在尝试使用rspec为其编写测试。我如何stubFile.open以便它将对象f(由我提供)传递给block而不是尝试打开实际文件?像这样的东西:it"shouldtestsomething"domyobject=double("File",{'write'=>true})File.should_rece
我有一个订阅用户的ActionCable方法。如果开始新的session,我也想为用户订阅新channel。我想不出在Controller中调用channel方法的正确语法。更新:问题是消息在发送时附加到聊天框,但是当发送第一条消息时,websocket连接尚未建立,因此在用户看来好像消息没有发送(因为它没有被附加)。channel/msgs_channel.rbclassMsgsChannel在我的convosController中,create方法,我尝试了几种方法:convos_controller.rbdefcreate@convo=Convo.create!({sender_
为此,我遵循了Devisegithub页面的建议:http://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in现在效果很好,但是您现在如何测试您是否有这种行为? 最佳答案 有两种方法可以在单元级别测试它,一种是在继承应用程序Controller的Controller中编写测试。代码看起来像it"shouldredirecttopage_xafterloggedin"dosign_in:user
我正在使用YARD为我的rubygem编写文档.在我的gem中,我有一些代码遵循这种常见的ruby模式,其中一个模块包含在一个类中,并且该模块不仅添加了实例方法,还添加了类方法:moduleMoodefself.included(klass)klass.extendClassMethodsendmoduleClassMethodsdefhelloputs"hello"endendendclassFooincludeMooendFoo.hello#=>classmethodruns,printing"hello"默认情况下,YARD将为Foo类生成如下所示的文档:我认为此文档不充
我想在一个模块中创建一个方法(出于分组原因),它可以作为module.method调用,如下所示:helpersdomoduleUserSessiondeflogged_in?notsession[:email].nil?enddeflogout!session[:email]=nilendendend但是当我尝试使用UserSession.logged_in?调用它时,它说logged_in不是UserSession的方法undefinedmethod`logged_in?'forUserSession:Module当我将方法移动为UserSession的方法时:helpersdom
我正在编写一个使用fileutils的小型Ruby命令行应用程序来自文件操作的标准库。根据用户调用应用程序的方式,我想包括FileUtils,FileUtils::DryRun或FileUtils::Verbose.自include虽然是私有(private)的,但我无法将选择逻辑放入对象的initialize中方法。(这是我的第一个想法,从那时起我就可以将有关用户选择的信息作为参数传递给new。)我想出了两个似乎可行的选项,但我对其中任何一个都不满意:根据用户的选择在应用程序的命名空间中设置一个全局变量,然后在类中执行条件包含:classWorkercaseApp::OPTION
我只是为旧版Rails应用程序构建测试套件。simplecovgem非常适合查找需要测试覆盖的应用程序的暗角(或者可能完全未使用但可以删除的暗角)。我通过在test/test_helper.rb的顶部包含以下内容来调用simplecov:require'simplecov'SimpleCov.start('rails')问题是这不会检查模板中嵌入的所有代码。那里有各种各样的垃圾,我敢肯定其中很多都可以删除,但如果代码覆盖工具可以将我指向未使用的位,那就太好了。对Ruby1.9的Coverage库进行的一些实验让我相信,只有将模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然
我有一个ActiveSupport::Concern模块,大致如下所示:moduleMyModelmoduleAcceptanceextendActiveSupport::Concernincludeddoenumstatus:[:declined,:accepted]enddefdeclined!self.status=:declined#someextralogicself.save!enddefaccepted!self.status=:accepted#someextralogicself.save!endendend这只会被包含到ActiveRecord类中,因此使用enum
我在Rakefile中有一系列rake任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:task:do_somthing=>:environmentdo#Dosomethingwiththedatabasehereend:environment任务设置ActiveRecord/DataMapper数据库连接和类。我没有将其用作Rails的一部分,但我有一系列测试,我喜欢将其作为BDD的一部分运行。此片段说明了我如何尝试测试rake任务。defsetup@rake=Rake::Application.newRake.application=@rakeloadFile
我刚刚针对等效的getter/setter方法测试了attr_accessor:classA#wedefinetwoR/Wattributeswithaccessorsattr_accessor:acc,:bcc#wedefinetwoattributeswithgetter/setter-functionsdefdirA=(d);@dirA=d;enddefdirA;@dirA;enddefdirB=(d);@dirB=d;enddefdirB;@dirB;endendvarA=A.newstartT=0dirT=0accT=0#nowwedo100timesthesamebench